#include "AltaCuentaCorriente.h"
#include "ui_AltaCuentaCorriente.h"

extern QSqlDatabase enjoylifedb;
extern QSqlRelationalTableModel *cuenta_corriente_model;
extern QTableView *cuenta_corriente_view;

extern QString RazonSocial;
QString RazSoc;

AltaCuentaCorriente::AltaCuentaCorriente(QWidget *parent) :
    QWidget(parent),
    cc_model(new QSqlTableModel(this,enjoylifedb)),
    ui(new Ui::AltaCuentaCorriente)
{
    ui->setupUi(this);
    setWindowIcon(QIcon("://Icons/logo_principal.png"));
    setWindowTitle("Alta Cuenta Corriente");
    setWindowFlags(Qt::WindowMinimizeButtonHint);
    setWindowFlags(Qt::WindowCloseButtonHint);
    setWindowModality(Qt::WindowModal);

    cc_model->setTable("cuenta_corriente");

    cobro_mensual_model = new QSqlTableModel(this,enjoylifedb);
    cobro_mensual_model->setTable("cobro_mensual");

    UpdateClientList();

    CargarConceptos();

    ui->tipo_cobro->addItem("- Elija Tipo Cobro");
    ui->tipo_cobro->addItem("Esporádico");
    ui->tipo_cobro->addItem("Servicio");
    ui->tipo_cobro->setCurrentIndex(0);

    ui->hasta_anio->addItem("- Elija año -");
    ui->anio_cuota->addItem("- Año -");
    for (int i = QDate::currentDate().year()-1; i < QDate::currentDate().year() + 50; i++) {
        ui->hasta_anio->addItem(QString::number(i));
        ui->anio_cuota->addItem(QString::number(i));
    }

    ui->hasta_anio->setCurrentIndex(ui->hasta_anio->findData(QString::number(QDate::currentDate().year()),Qt::DisplayRole));
    ui->anio_cuota->setCurrentIndex(0);

    ui->mes_cuota->addItem(" - Mes -");
    ui->mes_cuota->addItem("Enero");
    ui->mes_cuota->addItem("Febrero");
    ui->mes_cuota->addItem("Marzo");
    ui->mes_cuota->addItem("Abril");
    ui->mes_cuota->addItem("Mayo");
    ui->mes_cuota->addItem("Junio");
    ui->mes_cuota->addItem("Julio");
    ui->mes_cuota->addItem("Agosto");
    ui->mes_cuota->addItem("Septiembre");
    ui->mes_cuota->addItem("Octubre");
    ui->mes_cuota->addItem("Noviembre");
    ui->mes_cuota->addItem("Diciembre");
    ui->mes_cuota->setCurrentIndex(0);

    for (int i = 1; i < 25; i++)
        ui->cant_cuotas->addItem(QString::number(i));

    ui->group_pago_cuota->setEnabled(false);

    paga_en_cuotas = false;

    connect(ui->cerrarBtn,SIGNAL(clicked()),this,SLOT(close()));

    // Definición de acceso directo para guardar cambios.".
    QShortcut* shortcutGuardar = new QShortcut(QKeySequence(Qt::Key_Return), this);
    connect(shortcutGuardar, SIGNAL(activated()), this, SLOT(on_guardarBtn_clicked()));
    // Definición de acceso directo para Cancelar cambios.".
    QShortcut* shortcutCancelar = new QShortcut(QKeySequence(Qt::Key_Escape), this);
    connect(shortcutCancelar, SIGNAL(activated()), this, SLOT(close()));
}

AltaCuentaCorriente::~AltaCuentaCorriente()
{
    delete ui;
}

void AltaCuentaCorriente::UpdateClientList()
{
    QSqlQuery *query = new QSqlQuery(enjoylifedb);

    if (! query->exec("select razon_social from cliente order by razon_social")) {
        QMessageBox::critical(this,"Error","No se pueden recuperar los cliente, intente nuevamente");
        return;
    }

    ui->client_list->clear();
    ui->client_list->addItem("- Elija Cliente -");

    while (query->next())
        ui->client_list->addItem(query->value(0).toString());

    ui->client_list->setCurrentIndex(0);
}

/*
 * Carga conceptos en el comboBox.
 */
void AltaCuentaCorriente::CargarConceptos()
{
    // Carga las personas de la pabla cliente
    QSqlQuery *query = new QSqlQuery(enjoylifedb);
    QString stm = "select concepto from concepto where tipo_concepto = 'Cliente' order by concepto";

    if (! query->exec(stm)) {
        QMessageBox::critical(this,"Error!", "No se pudieron recuperar los registros de conceptos, "
                              "intentelo nuevamente || " + query->lastError().text());
        return;
    }
    ui->comboBox_concepto->addItem("");
    while (query->next()) {
        ui->comboBox_concepto->addItem(query->value(query->record().indexOf("concepto")).toString());
    }
}

void AltaCuentaCorriente::UpdateCCView()
{
    QString filtro = "cc_razon_social = '";
    filtro.append(RazSoc).append("'");
    cuenta_corriente_model->setTable("cuenta_corriente");
    cuenta_corriente_model->setFilter(filtro);
    enjoylifedb.transaction();
    if (!(cuenta_corriente_model->select())) {
        QMessageBox::critical(this,"Error!", "No se pudieron recuperar los registros, vuelva a intentarlo mas tarde.");
        enjoylifedb.rollback();
        return;
    }
    enjoylifedb.commit();
    RefreshCCView();
}

void AltaCuentaCorriente::RefreshCCView()
{
    cuenta_corriente_model->setHeaderData(0,Qt::Horizontal,"Nro. Cta.");
    cuenta_corriente_model->setHeaderData(2,Qt::Horizontal,"Tipo de Cobro");
    cuenta_corriente_model->setHeaderData(3,Qt::Horizontal,"Concepto");
    cuenta_corriente_model->setHeaderData(4,Qt::Horizontal,"Monto");
    cuenta_corriente_model->setHeaderData(5,Qt::Horizontal,"Desde fecha");
    cuenta_corriente_model->setHeaderData(7,Qt::Horizontal,"Tipo Moneda");
    cuenta_corriente_model->setHeaderData(8,Qt::Horizontal,"Id Moneda");
    cuenta_corriente_model->setHeaderData(9,Qt::Horizontal,"Fecha Pagó");
    cuenta_corriente_model->setHeaderData(11,Qt::Horizontal,"Monto Pagado");
    cuenta_corriente_model->setHeaderData(12,Qt::Horizontal,"Descripción");

    cuenta_corriente_view->setModel(cuenta_corriente_model);
    cuenta_corriente_view->setCornerButtonEnabled(true);
    cuenta_corriente_view->setAlternatingRowColors(true);
    cuenta_corriente_view->setGridStyle(Qt::SolidLine);
    cuenta_corriente_view->setEditTriggers(QAbstractItemView::NoEditTriggers);
    cuenta_corriente_view->setWordWrap(true);
    cuenta_corriente_view->setSortingEnabled(false);
    cuenta_corriente_view->sortByColumn(5, Qt::AscendingOrder);
//    cuenta_corriente_view->horizontalHeader()->setStretchLastSection(true);
    cuenta_corriente_view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    cuenta_corriente_view->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

    cuenta_corriente_view->hideColumn(1);
    cuenta_corriente_view->hideColumn(6);
    cuenta_corriente_view->hideColumn(10);
//    cuenta_corriente_view->hideColumn(11);
}

void AltaCuentaCorriente::CleanCCList()
{
    QString Filtro = "cc_razon_social = '  '";
    enjoylifedb.transaction();
    cuenta_corriente_model->setTable("cuenta_corriente");
    cuenta_corriente_model->setFilter(Filtro);
    if (!cuenta_corriente_model->select()) {
        QMessageBox::critical(this,"Error!", "No se pudieron recuperar los registros, intentelo nuevamente más tarde.");
        enjoylifedb.rollback();
        UpdateCCView();
        return;
    }
    enjoylifedb.commit();
    UpdateCCView();
}

void AltaCuentaCorriente::calcularPagoCuotas(double monto, int cant_cuot, int mes, int anio)
{
    double val_cuota_x_mes = monto / cant_cuot;
    int mes_corriente = mes;
    int anio_nuevo = anio;

    QList<QSqlField> *records = new QList<QSqlField>();

    for (int i = 0; i < cant_cuot; i++) {
        QSqlField desdeField(QStringLiteral("desde"), QVariant::Date);
        if (mes_corriente <= 12) {
            desdeField.setValue(QDate(anio_nuevo,mes_corriente,1));
            records->append(desdeField);
        }
        else {
            anio_nuevo = anio_nuevo + 1;
            desdeField.setValue(QDate(anio_nuevo,1,1));
            records->append(desdeField);
            mes_corriente = 1;
        }

        mes_corriente = mes_corriente + 1;
    }

    QSqlField raz_soc_Field(QStringLiteral("cc_razon_social"), QVariant::String);
    raz_soc_Field.setValue(ui->client_list->currentText());

//    QSqlField cm_raz_soc_Field(QStringLiteral("cm_razon_social"), QVariant::String);
//    cm_raz_soc_Field.setValue(ui->client_list->currentText());

    QSqlField tcField(QStringLiteral("tipo_cobro"), QVariant::String);
    tcField.setValue(ui->tipo_cobro->currentText());

//    QSqlField coField(QStringLiteral("concepto"), QVariant::String);
//    coField.setValue(ui->comboBox_concepto->itemText(ui->comboBox_concepto->currentIndex()));

    QSqlField debe_Field(QStringLiteral("debe"), QVariant::Double);
    debe_Field.setValue(val_cuota_x_mes);

    QSqlField estadoField(QStringLiteral("estado_deuda"), QVariant::String);
    estadoField.setValue("No informado");

    for (int j = 0 ; j < records->size(); j++) {
        QSqlField coField(QStringLiteral("concepto"), QVariant::String);
        int p = j + 1;
        QString concepto = ui->comboBox_concepto->itemText(ui->comboBox_concepto->currentIndex());
        if (ui->monto_total->text().toDouble() >= 0)
            concepto.append(" (Parte ").append(QString::number(p)).append(")");
        coField.setValue(concepto);

        QSqlField descField(QStringLiteral("descripcion"), QVariant::String);
        descField.setValue(ui->descripcion->toPlainText());

        QSqlRecord record;
        record.append(raz_soc_Field);
        record.append(tcField);
        record.append(coField);
        record.append(descField);
        record.append(debe_Field);
        record.append(records->at(j));
        record.append(estadoField);

//        QSqlRecord cm_record;
//        cm_record.append(cm_raz_soc_Field);
//        cm_record.append(descField);
//        cm_record.append(coField);
//        cm_record.append(debe_Field);
//        cm_record.append(records->at(j));
//        cm_record.append(estadoField);
//        cm_record.append(tcField);

        enjoylifedb.transaction();
        if (! (cc_model->insertRecord(-1, record))) {
            QString error = cc_model->lastError().text();
            QMessageBox::critical(this,"Error!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                    "\n %1").arg(error));
            enjoylifedb.rollback();
            return;
        }
//        enjoylifedb.transaction();
//        if (! cobro_mensual_model->insertRecord(-1,cm_record)) {
//            QString error = cobro_mensual_model->lastError().text();
//            QMessageBox::critical(this,"Error!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                    "\n %1").arg(error));
//            enjoylifedb.rollback();
//            return;
//        }
//        enjoylifedb.commit();
        enjoylifedb.commit();
    }
}

void AltaCuentaCorriente::on_guardarBtn_clicked()
{
    if (ui->client_list->currentIndex() == 0) {
        QMessageBox::warning(this,"Información!","Por favor, seleccione un cliente");
        return;
    }

    if (ui->tipo_cobro->currentIndex() == 0) {
        QMessageBox::warning(this,"Información!","Por favor, seleccione el tipo de cobro");
        return;
    }

    if (ui->comboBox_concepto->currentText().isEmpty()) {
        QMessageBox::warning(this,"Información!","Por favor, ingrese el concepto");
        return;
    }

    // Solo si se decide pagar en cuotas
    if (paga_en_cuotas) {
        if (ui->monto_total->text().toDouble() == 0) {
            QMessageBox::warning(this,"Información!","Por favor, ingrese el monto total del servicio");
            return;
        }

        if (ui->mes_cuota->currentIndex() == 0) {
            QMessageBox::warning(this,"Información!","Por favor, seleccione el mes del primer cobro");
            return;
        }

        if (ui->anio_cuota->currentIndex() == 0) {
            QMessageBox::warning(this,"Información!","Por favor, selecciones el año del primer cobro");
            return;
        }

        calcularPagoCuotas(ui->monto_total->text().toDouble(),(ui->cant_cuotas->currentIndex())+1,ui->mes_cuota->currentIndex(),ui->anio_cuota->currentText().toInt());
    }
    else {
        if (ui->hasta_anio->currentIndex() == 0) {
            QMessageBox::warning(this,"Información!","Por favor, seleccione un año válido");
            return;
        }

        QSqlField raz_soc_Field(QStringLiteral("cc_razon_social"), QVariant::String);
        raz_soc_Field.setValue(ui->client_list->currentText());

        QSqlField cm_raz_soc_Field(QStringLiteral("cm_razon_social"), QVariant::String);
        cm_raz_soc_Field.setValue(ui->client_list->currentText());

        QSqlField tcField(QStringLiteral("tipo_cobro"), QVariant::String);
        tcField.setValue(ui->tipo_cobro->currentText());

        QSqlField coField(QStringLiteral("concepto"), QVariant::String);
        coField.setValue(ui->comboBox_concepto->itemText(ui->comboBox_concepto->currentIndex()));

        QSqlField descField(QStringLiteral("descripcion"), QVariant::String);
        descField.setValue(ui->descripcion->toPlainText());

        QSqlRecord record_enero;
        QSqlRecord record_febrero;
        QSqlRecord record_marzo;
        QSqlRecord record_abril;
        QSqlRecord record_mayo;
        QSqlRecord record_junio;
        QSqlRecord record_julio;
        QSqlRecord record_agosto;
        QSqlRecord record_septiembre;
        QSqlRecord record_octubre;
        QSqlRecord record_noviembre;
        QSqlRecord record_diciembre;

//        QSqlRecord record_cm_enero;
//        QSqlRecord record_cm_febrero;
//        QSqlRecord record_cm_marzo;
//        QSqlRecord record_cm_abril;
//        QSqlRecord record_cm_mayo;
//        QSqlRecord record_cm_junio;
//        QSqlRecord record_cm_julio;
//        QSqlRecord record_cm_agosto;
//        QSqlRecord record_cm_septiembre;
//        QSqlRecord record_cm_octubre;
//        QSqlRecord record_cm_noviembre;
//        QSqlRecord record_cm_diciembre;

        if (! ui->bonif_enero->isChecked()) {
            if (ui->debe_enero->text().toDouble() != 0) {

                QSqlField desde_ene_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_ene_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_ene_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),1,1));
                debe_ene_Field.setValue(QString("%1").arg(ui->debe_enero->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_enero.append(raz_soc_Field);
                record_enero.append(tcField);
                record_enero.append(coField);
                record_enero.append(descField);
                record_enero.append(debe_ene_Field);
                record_enero.append(desde_ene_Field);
                record_enero.append(estado_deuda_Field);

//                record_cm_enero.append(cm_raz_soc_Field);
//                record_cm_enero.append(coField);
//                record_cm_enero.append(descField);
//                record_cm_enero.append(debe_ene_Field);
//                record_cm_enero.append(desde_ene_Field);
//                record_cm_enero.append(estado_deuda_Field);
//                record_cm_enero.append(tcField);
            }
            else {
                QSqlField desde_ene_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_ene_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_ene_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),1,1));
                debe_ene_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_enero.append(raz_soc_Field);
                record_enero.append(tcField);
                record_enero.append(coField);
                record_enero.append(descField);
                record_enero.append(debe_ene_Field);
                record_enero.append(desde_ene_Field);
                record_enero.append(estado_deuda_Field);

//                record_cm_enero.append(cm_raz_soc_Field);
//                record_cm_enero.append(coField);
//                record_cm_enero.append(descField);
//                record_cm_enero.append(debe_ene_Field);
//                record_cm_enero.append(desde_ene_Field);
//                record_cm_enero.append(estado_deuda_Field);
//                record_cm_enero.append(tcField);
            }
        }
        else {
            QSqlField desde_ene_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_ene_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_ene_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),1,1));
            debe_ene_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_enero.append(raz_soc_Field);
            record_enero.append(tcField);
            record_enero.append(coField);
            record_enero.append(descField);
            record_enero.append(debe_ene_Field);
            record_enero.append(desde_ene_Field);
            record_enero.append(estado_deuda_Field);

//            record_cm_enero.append(cm_raz_soc_Field);
//            record_cm_enero.append(coField);
//            record_cm_enero.append(descField);
//            record_cm_enero.append(debe_ene_Field);
//            record_cm_enero.append(desde_ene_Field);
//            record_cm_enero.append(estado_deuda_Field);
//            record_cm_enero.append(tcField);
        }

        if (! ui->bonif_febrero->isChecked()) {
            if (ui->debe_febrero->text().toDouble() != 0) {
                QSqlField desdefField(QStringLiteral("desde"), QVariant::Date);
                QSqlField debefField(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desdefField.setValue(QDate(ui->hasta_anio->currentText().toInt(),2,1));
                debefField.setValue(QString("%1").arg(ui->debe_febrero->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_febrero.append(raz_soc_Field);
                record_febrero.append(tcField);
                record_febrero.append(coField);
                record_febrero.append(descField);
                record_febrero.append(debefField);
                record_febrero.append(desdefField);
                record_febrero.append(estado_deuda_Field);

//                record_cm_febrero.append(cm_raz_soc_Field);
//                record_cm_febrero.append(coField);
//                record_cm_febrero.append(descField);
//                record_cm_febrero.append(debefField);
//                record_cm_febrero.append(desdefField);
//                record_cm_febrero.append(estado_deuda_Field);
//                record_cm_febrero.append(tcField);
            }
            else {
                QSqlField desdefField(QStringLiteral("desde"), QVariant::Date);
                QSqlField debefField(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desdefField.setValue(QDate(ui->hasta_anio->currentText().toInt(),2,1));
                debefField.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_febrero.append(raz_soc_Field);
                record_febrero.append(tcField);
                record_febrero.append(coField);
                record_febrero.append(descField);
                record_febrero.append(debefField);
                record_febrero.append(desdefField);
                record_febrero.append(estado_deuda_Field);

//                record_cm_febrero.append(cm_raz_soc_Field);
//                record_cm_febrero.append(coField);
//                record_cm_febrero.append(descField);
//                record_cm_febrero.append(debefField);
//                record_cm_febrero.append(desdefField);
//                record_cm_febrero.append(estado_deuda_Field);
//                record_cm_febrero.append(tcField);
            }
        }
        else {
            QSqlField desdefField(QStringLiteral("desde"), QVariant::Date);
            QSqlField debefField(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desdefField.setValue(QDate(ui->hasta_anio->currentText().toInt(),2,1));
            debefField.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_febrero.append(raz_soc_Field);
            record_febrero.append(tcField);
            record_febrero.append(coField);
            record_febrero.append(descField);
            record_febrero.append(debefField);
            record_febrero.append(desdefField);
            record_febrero.append(estado_deuda_Field);

//            record_cm_febrero.append(cm_raz_soc_Field);
//            record_cm_febrero.append(coField);
//            record_cm_febrero.append(descField);
//            record_cm_febrero.append(debefField);
//            record_cm_febrero.append(desdefField);
//            record_cm_febrero.append(estado_deuda_Field);
//            record_cm_febrero.append(tcField);
        }

        if (! ui->bonif_marzo->isChecked()) {
            if (ui->debe_marzo->text().toDouble() != 0) {
                QSqlField desdemField(QStringLiteral("desde"), QVariant::Date);
                QSqlField debemField(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desdemField.setValue(QDate(ui->hasta_anio->currentText().toInt(),3,1));
                debemField.setValue(QString("%1").arg(ui->debe_marzo->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_marzo.append(raz_soc_Field);
                record_marzo.append(tcField);
                record_marzo.append(coField);
                record_marzo.append(descField);
                record_marzo.append(debemField);
                record_marzo.append(desdemField);
                record_marzo.append(estado_deuda_Field);

//                record_cm_marzo.append(cm_raz_soc_Field);
//                record_cm_marzo.append(coField);
//                record_cm_marzo.append(descField);
//                record_cm_marzo.append(debemField);
//                record_cm_marzo.append(desdemField);
//                record_cm_marzo.append(estado_deuda_Field);
//                record_cm_marzo.append(tcField);
            }
            else {
                QSqlField desdemField(QStringLiteral("desde"), QVariant::Date);
                QSqlField debemField(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desdemField.setValue(QDate(ui->hasta_anio->currentText().toInt(),3,1));
                debemField.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_marzo.append(raz_soc_Field);
                record_marzo.append(tcField);
                record_marzo.append(coField);
                record_marzo.append(descField);
                record_marzo.append(debemField);
                record_marzo.append(desdemField);
                record_marzo.append(estado_deuda_Field);

//                record_cm_marzo.append(cm_raz_soc_Field);
//                record_cm_marzo.append(coField);
//                record_cm_marzo.append(descField);
//                record_cm_marzo.append(debemField);
//                record_cm_marzo.append(desdemField);
//                record_cm_marzo.append(estado_deuda_Field);
//                record_cm_marzo.append(tcField);
            }
        }
        else {
            QSqlField desdemField(QStringLiteral("desde"), QVariant::Date);
            QSqlField debemField(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desdemField.setValue(QDate(ui->hasta_anio->currentText().toInt(),3,1));
            debemField.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_marzo.append(raz_soc_Field);
            record_marzo.append(tcField);
            record_marzo.append(coField);
            record_marzo.append(descField);
            record_marzo.append(debemField);
            record_marzo.append(desdemField);
            record_marzo.append(estado_deuda_Field);

//            record_cm_marzo.append(cm_raz_soc_Field);
//            record_cm_marzo.append(coField);
//            record_cm_marzo.append(descField);
//            record_cm_marzo.append(debemField);
//            record_cm_marzo.append(desdemField);
//            record_cm_marzo.append(estado_deuda_Field);
//            record_cm_marzo.append(tcField);
        }

        if (! ui->bonif_abril->isChecked()) {
            if (ui->debe_abril->text().toDouble() != 0) {
                QSqlField desde_ab_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_ab_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_ab_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),4,1));
                debe_ab_Field.setValue(QString("%1").arg(ui->debe_abril->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_abril.append(raz_soc_Field);
                record_abril.append(tcField);
                record_abril.append(coField);
                record_abril.append(descField);
                record_abril.append(debe_ab_Field);
                record_abril.append(desde_ab_Field);
                record_abril.append(estado_deuda_Field);

//                record_cm_abril.append(cm_raz_soc_Field);
//                record_cm_abril.append(coField);
//                record_cm_abril.append(descField);
//                record_cm_abril.append(debe_ab_Field);
//                record_cm_abril.append(desde_ab_Field);
//                record_cm_abril.append(estado_deuda_Field);
//                record_cm_abril.append(tcField);
            }
            else {
                QSqlField desde_ab_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_ab_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_ab_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),4,1));
                debe_ab_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_abril.append(raz_soc_Field);
                record_abril.append(tcField);
                record_abril.append(coField);
                record_abril.append(descField);
                record_abril.append(debe_ab_Field);
                record_abril.append(desde_ab_Field);
                record_abril.append(estado_deuda_Field);

//                record_cm_abril.append(cm_raz_soc_Field);
//                record_cm_abril.append(coField);
//                record_cm_abril.append(descField);
//                record_cm_abril.append(debe_ab_Field);
//                record_cm_abril.append(desde_ab_Field);
//                record_cm_abril.append(estado_deuda_Field);
//                record_cm_abril.append(tcField);
            }
        }
        else {
            QSqlField desde_ab_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_ab_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_ab_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),4,1));
            debe_ab_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_abril.append(raz_soc_Field);
            record_abril.append(tcField);
            record_abril.append(coField);
            record_abril.append(descField);
            record_abril.append(debe_ab_Field);
            record_abril.append(desde_ab_Field);
            record_abril.append(estado_deuda_Field);

//            record_cm_abril.append(cm_raz_soc_Field);
//            record_cm_abril.append(coField);
//            record_cm_abril.append(descField);
//            record_cm_abril.append(debe_ab_Field);
//            record_cm_abril.append(desde_ab_Field);
//            record_cm_abril.append(estado_deuda_Field);
//            record_cm_abril.append(tcField);
        }

        if (! ui->bonif_mayo->isChecked()) {
            if (ui->debe_mayo->text().toDouble() != 0) {
                QSqlField desde_may_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_may_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_may_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),5,1));
                debe_may_Field.setValue(QString("%1").arg(ui->debe_mayo->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_mayo.append(raz_soc_Field);
                record_mayo.append(tcField);
                record_mayo.append(coField);
                record_mayo.append(descField);
                record_mayo.append(debe_may_Field);
                record_mayo.append(desde_may_Field);
                record_mayo.append(estado_deuda_Field);

//                record_cm_mayo.append(cm_raz_soc_Field);
//                record_cm_mayo.append(coField);
//                record_cm_mayo.append(descField);
//                record_cm_mayo.append(debe_may_Field);
//                record_cm_mayo.append(desde_may_Field);
//                record_cm_mayo.append(estado_deuda_Field);
//                record_cm_mayo.append(tcField);
            }
            else {
                QSqlField desde_may_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_may_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_may_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),5,1));
                debe_may_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_mayo.append(raz_soc_Field);
                record_mayo.append(tcField);
                record_mayo.append(coField);
                record_mayo.append(descField);
                record_mayo.append(debe_may_Field);
                record_mayo.append(desde_may_Field);
                record_mayo.append(estado_deuda_Field);

//                record_cm_mayo.append(cm_raz_soc_Field);
//                record_cm_mayo.append(coField);
//                record_cm_mayo.append(descField);
//                record_cm_mayo.append(debe_may_Field);
//                record_cm_mayo.append(desde_may_Field);
//                record_cm_mayo.append(estado_deuda_Field);
//                record_cm_mayo.append(tcField);
            }
        }
        else {
            QSqlField desde_may_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_may_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_may_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),5,1));
            debe_may_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_mayo.append(raz_soc_Field);
            record_mayo.append(tcField);
            record_mayo.append(coField);
            record_mayo.append(descField);
            record_mayo.append(debe_may_Field);
            record_mayo.append(desde_may_Field);
            record_mayo.append(estado_deuda_Field);

//            record_cm_mayo.append(cm_raz_soc_Field);
//            record_cm_mayo.append(coField);
//            record_cm_mayo.append(descField);
//            record_cm_mayo.append(debe_may_Field);
//            record_cm_mayo.append(desde_may_Field);
//            record_cm_mayo.append(estado_deuda_Field);
//            record_cm_mayo.append(tcField);
        }

        if (! ui->bonif_junio->isChecked()) {
            if (ui->debe_junio->text().toDouble() != 0) {
                QSqlField desde_jun_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_jun_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_jun_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),6,1));
                debe_jun_Field.setValue(QString("%1").arg(ui->debe_junio->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_junio.append(raz_soc_Field);
                record_junio.append(tcField);
                record_junio.append(coField);
                record_junio.append(descField);
                record_junio.append(debe_jun_Field);
                record_junio.append(desde_jun_Field);
                record_junio.append(estado_deuda_Field);

//                record_cm_junio.append(cm_raz_soc_Field);
//                record_cm_junio.append(coField);
//                record_cm_junio.append(descField);
//                record_cm_junio.append(debe_jun_Field);
//                record_cm_junio.append(desde_jun_Field);
//                record_cm_junio.append(estado_deuda_Field);
//                record_cm_junio.append(tcField);
            }
            else {
                QSqlField desde_jun_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_jun_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_jun_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),6,1));
                debe_jun_Field.setValue(0.0);
                estado_deuda_Field.setValue("No paga");

                record_junio.append(raz_soc_Field);
                record_junio.append(tcField);
                record_junio.append(coField);
                record_junio.append(descField);
                record_junio.append(debe_jun_Field);
                record_junio.append(desde_jun_Field);
                record_junio.append(estado_deuda_Field);

//                record_cm_junio.append(cm_raz_soc_Field);
//                record_cm_junio.append(coField);
//                record_cm_junio.append(descField);
//                record_cm_junio.append(debe_jun_Field);
//                record_cm_junio.append(desde_jun_Field);
//                record_cm_junio.append(estado_deuda_Field);
//                record_cm_junio.append(tcField);
            }
        }
        else {
            QSqlField desde_jun_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_jun_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_jun_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),6,1));
            debe_jun_Field.setValue(0.0);
            estado_deuda_Field.setValue("Bonificado");

            record_junio.append(raz_soc_Field);
            record_junio.append(tcField);
            record_junio.append(coField);
            record_junio.append(descField);
            record_junio.append(debe_jun_Field);
            record_junio.append(desde_jun_Field);
            record_junio.append(estado_deuda_Field);

//            record_cm_junio.append(cm_raz_soc_Field);
//            record_cm_junio.append(coField);
//            record_cm_junio.append(descField);
//            record_cm_junio.append(debe_jun_Field);
//            record_cm_junio.append(desde_jun_Field);
//            record_cm_junio.append(estado_deuda_Field);
//            record_cm_junio.append(tcField);
        }

        if (! ui->bonif_julio->isChecked()) {
            if (ui->debe_julio->text().toDouble() != 0) {
                QSqlField desde_jul_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_jul_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_jul_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),7,1));
                debe_jul_Field.setValue(QString("%1").arg(ui->debe_julio->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_julio.append(raz_soc_Field);
                record_julio.append(tcField);
                record_julio.append(coField);
                record_julio.append(descField);
                record_julio.append(debe_jul_Field);
                record_julio.append(desde_jul_Field);
                record_julio.append(estado_deuda_Field);

//                record_cm_julio.append(cm_raz_soc_Field);
//                record_cm_julio.append(coField);
//                record_cm_julio.append(descField);
//                record_cm_julio.append(debe_jul_Field);
//                record_cm_julio.append(desde_jul_Field);
//                record_cm_julio.append(estado_deuda_Field);
//                record_cm_julio.append(tcField);
            }
            else {
                QSqlField desde_jul_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_jul_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_jul_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),7,1));
                debe_jul_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_julio.append(raz_soc_Field);
                record_julio.append(tcField);
                record_julio.append(coField);
                record_julio.append(descField);
                record_julio.append(debe_jul_Field);
                record_julio.append(desde_jul_Field);
                record_julio.append(estado_deuda_Field);

//                record_cm_julio.append(cm_raz_soc_Field);
//                record_cm_julio.append(coField);
//                record_cm_julio.append(descField);
//                record_cm_julio.append(debe_jul_Field);
//                record_cm_julio.append(desde_jul_Field);
//                record_cm_julio.append(estado_deuda_Field);
//                record_cm_julio.append(tcField);
            }
        }
        else {
            QSqlField desde_jul_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_jul_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_jul_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),7,1));
            debe_jul_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_julio.append(raz_soc_Field);
            record_julio.append(tcField);
            record_julio.append(coField);
            record_julio.append(descField);
            record_julio.append(debe_jul_Field);
            record_julio.append(desde_jul_Field);
            record_julio.append(estado_deuda_Field);

//            record_cm_julio.append(cm_raz_soc_Field);
//            record_cm_julio.append(coField);
//            record_cm_julio.append(descField);
//            record_cm_julio.append(debe_jul_Field);
//            record_cm_julio.append(desde_jul_Field);
//            record_cm_julio.append(estado_deuda_Field);
//            record_cm_julio.append(tcField);
        }

        if (! ui->bonif_agosto->isChecked()) {
            if (ui->debe_agosto->text().toDouble() != 0) {
                QSqlField desde_ag_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_ag_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_ag_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),8,1));
                debe_ag_Field.setValue(QString("%1").arg(ui->debe_agosto->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_agosto.append(raz_soc_Field);
                record_agosto.append(tcField);
                record_agosto.append(coField);
                record_agosto.append(descField);
                record_agosto.append(debe_ag_Field);
                record_agosto.append(desde_ag_Field);
                record_agosto.append(estado_deuda_Field);

//                record_cm_agosto.append(cm_raz_soc_Field);
//                record_cm_agosto.append(coField);
//                record_cm_agosto.append(descField);
//                record_cm_agosto.append(debe_ag_Field);
//                record_cm_agosto.append(desde_ag_Field);
//                record_cm_agosto.append(estado_deuda_Field);
//                record_cm_agosto.append(tcField);
            }
            else {
                QSqlField desde_ag_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_ag_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_ag_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),8,1));
                debe_ag_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_agosto.append(raz_soc_Field);
                record_agosto.append(tcField);
                record_agosto.append(coField);
                record_agosto.append(descField);
                record_agosto.append(debe_ag_Field);
                record_agosto.append(desde_ag_Field);
                record_agosto.append(estado_deuda_Field);

//                record_cm_agosto.append(cm_raz_soc_Field);
//                record_cm_agosto.append(coField);
//                record_cm_agosto.append(descField);
//                record_cm_agosto.append(debe_ag_Field);
//                record_cm_agosto.append(desde_ag_Field);
//                record_cm_agosto.append(estado_deuda_Field);
//                record_cm_agosto.append(tcField);
            }
        }
        else {
            QSqlField desde_ag_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_ag_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_ag_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),8,1));
            debe_ag_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_agosto.append(raz_soc_Field);
            record_agosto.append(tcField);
            record_agosto.append(coField);
            record_agosto.append(descField);
            record_agosto.append(debe_ag_Field);
            record_agosto.append(desde_ag_Field);
            record_agosto.append(estado_deuda_Field);

//            record_cm_agosto.append(cm_raz_soc_Field);
//            record_cm_agosto.append(coField);
//            record_cm_agosto.append(descField);
//            record_cm_agosto.append(debe_ag_Field);
//            record_cm_agosto.append(desde_ag_Field);
//            record_cm_agosto.append(estado_deuda_Field);
//            record_cm_agosto.append(tcField);
        }

        if (! ui->bonif_septiembre->isChecked()) {
            if (ui->debe_septiembre->text().toDouble() != 0) {
                QSqlField desde_sept_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_sept_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_sept_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),9,1));
                debe_sept_Field.setValue(QString("%1").arg(ui->debe_septiembre->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_septiembre.append(raz_soc_Field);
                record_septiembre.append(tcField);
                record_septiembre.append(coField);
                record_septiembre.append(descField);
                record_septiembre.append(debe_sept_Field);
                record_septiembre.append(desde_sept_Field);
                record_septiembre.append(estado_deuda_Field);

//                record_cm_septiembre.append(cm_raz_soc_Field);
//                record_cm_septiembre.append(coField);
//                record_cm_septiembre.append(descField);
//                record_cm_septiembre.append(debe_sept_Field);
//                record_cm_septiembre.append(desde_sept_Field);
//                record_cm_septiembre.append(estado_deuda_Field);
//                record_cm_septiembre.append(tcField);
            }
            else {
                QSqlField desde_sept_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_sept_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_sept_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),9,1));
                debe_sept_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_septiembre.append(raz_soc_Field);
                record_septiembre.append(tcField);
                record_septiembre.append(coField);
                record_septiembre.append(descField);
                record_septiembre.append(debe_sept_Field);
                record_septiembre.append(desde_sept_Field);
                record_septiembre.append(estado_deuda_Field);

//                record_cm_septiembre.append(cm_raz_soc_Field);
//                record_cm_septiembre.append(coField);
//                record_cm_septiembre.append(descField);
//                record_cm_septiembre.append(debe_sept_Field);
//                record_cm_septiembre.append(desde_sept_Field);
//                record_cm_septiembre.append(estado_deuda_Field);
//                record_cm_septiembre.append(tcField);
            }
        }
        else {
            QSqlField desde_sept_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_sept_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_sept_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),9,1));
            debe_sept_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_septiembre.append(raz_soc_Field);
            record_septiembre.append(tcField);
            record_septiembre.append(coField);
            record_septiembre.append(descField);
            record_septiembre.append(debe_sept_Field);
            record_septiembre.append(desde_sept_Field);
            record_septiembre.append(estado_deuda_Field);

//            record_cm_septiembre.append(cm_raz_soc_Field);
//            record_cm_septiembre.append(coField);
//            record_cm_septiembre.append(descField);
//            record_cm_septiembre.append(debe_sept_Field);
//            record_cm_septiembre.append(desde_sept_Field);
//            record_cm_septiembre.append(estado_deuda_Field);
//            record_cm_septiembre.append(tcField);
        }

        if (! ui->bonif_octubre->isChecked()) {
            if (ui->debe_octubre->text().toDouble() != 0) {
                QSqlField desde_oct_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_oct_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_oct_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),10,1));
                debe_oct_Field.setValue(QString("%1").arg(ui->debe_octubre->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_octubre.append(raz_soc_Field);
                record_octubre.append(tcField);
                record_octubre.append(coField);
                record_octubre.append(descField);
                record_octubre.append(debe_oct_Field);
                record_octubre.append(desde_oct_Field);
                record_octubre.append(estado_deuda_Field);

//                record_cm_octubre.append(cm_raz_soc_Field);
//                record_cm_octubre.append(coField);
//                record_cm_octubre.append(descField);
//                record_cm_octubre.append(debe_oct_Field);
//                record_cm_octubre.append(desde_oct_Field);
//                record_cm_octubre.append(estado_deuda_Field);
//                record_cm_octubre.append(tcField);
            }
            else {
                QSqlField desde_oct_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_oct_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_oct_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),10,1));
                debe_oct_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_octubre.append(raz_soc_Field);
                record_octubre.append(tcField);
                record_octubre.append(coField);
                record_octubre.append(descField);
                record_octubre.append(debe_oct_Field);
                record_octubre.append(desde_oct_Field);
                record_octubre.append(estado_deuda_Field);

//                record_cm_octubre.append(cm_raz_soc_Field);
//                record_cm_octubre.append(coField);
//                record_cm_octubre.append(descField);
//                record_cm_octubre.append(debe_oct_Field);
//                record_cm_octubre.append(desde_oct_Field);
//                record_cm_octubre.append(estado_deuda_Field);
//                record_cm_octubre.append(tcField);
            }
        }
        else {
            QSqlField desde_oct_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_oct_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_oct_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),10,1));
            debe_oct_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_octubre.append(raz_soc_Field);
            record_octubre.append(tcField);
            record_octubre.append(coField);
            record_octubre.append(descField);
            record_octubre.append(debe_oct_Field);
            record_octubre.append(desde_oct_Field);
            record_octubre.append(estado_deuda_Field);

//            record_cm_octubre.append(cm_raz_soc_Field);
//            record_cm_octubre.append(coField);
//            record_cm_octubre.append(descField);
//            record_cm_octubre.append(debe_oct_Field);
//            record_cm_octubre.append(desde_oct_Field);
//            record_cm_octubre.append(estado_deuda_Field);
//            record_cm_octubre.append(tcField);
        }

        if (! ui->bonif_noviembre->isChecked()) {
            if (ui->debe_noviembre->text().toDouble() != 0) {
                QSqlField desde_nov_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_nov_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_nov_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),11,1));
                debe_nov_Field.setValue(QString("%1").arg(ui->debe_noviembre->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_noviembre.append(raz_soc_Field);
                record_noviembre.append(tcField);
                record_noviembre.append(coField);
                record_noviembre.append(descField);
                record_noviembre.append(debe_nov_Field);
                record_noviembre.append(desde_nov_Field);
                record_noviembre.append(estado_deuda_Field);

//                record_cm_noviembre.append(cm_raz_soc_Field);
//                record_cm_noviembre.append(coField);
//                record_cm_noviembre.append(descField);
//                record_cm_noviembre.append(debe_nov_Field);
//                record_cm_noviembre.append(desde_nov_Field);
//                record_cm_noviembre.append(estado_deuda_Field);
//                record_cm_noviembre.append(tcField);
            }
            else {
                QSqlField desde_nov_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_nov_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_nov_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),11,1));
                debe_nov_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_noviembre.append(raz_soc_Field);
                record_noviembre.append(tcField);
                record_noviembre.append(coField);
                record_noviembre.append(descField);
                record_noviembre.append(debe_nov_Field);
                record_noviembre.append(desde_nov_Field);
                record_noviembre.append(estado_deuda_Field);

//                record_cm_noviembre.append(cm_raz_soc_Field);
//                record_cm_noviembre.append(coField);
//                record_cm_noviembre.append(descField);
//                record_cm_noviembre.append(debe_nov_Field);
//                record_cm_noviembre.append(desde_nov_Field);
//                record_cm_noviembre.append(estado_deuda_Field);
//                record_cm_noviembre.append(tcField);
            }
        }
        else {
            QSqlField desde_nov_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_nov_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_nov_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),11,1));
            debe_nov_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_noviembre.append(raz_soc_Field);
            record_noviembre.append(tcField);
            record_noviembre.append(coField);
            record_noviembre.append(descField);
            record_noviembre.append(debe_nov_Field);
            record_noviembre.append(desde_nov_Field);
            record_noviembre.append(estado_deuda_Field);

//            record_cm_noviembre.append(cm_raz_soc_Field);
//            record_cm_noviembre.append(coField);
//            record_cm_noviembre.append(descField);
//            record_cm_noviembre.append(debe_nov_Field);
//            record_cm_noviembre.append(desde_nov_Field);
//            record_cm_noviembre.append(estado_deuda_Field);
//            record_cm_noviembre.append(tcField);
        }

        if (! ui->bonif_diciembre->isChecked()) {
            if (ui->debe_diciembre->text().toDouble() != 0) {
                QSqlField desde_dic_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_dic_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_dic_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),12,1));
                debe_dic_Field.setValue(QString("%1").arg(ui->debe_diciembre->text().toDouble(), 0, 'f', 2));
                estado_deuda_Field.setValue("No informado");

                record_diciembre.append(raz_soc_Field);
                record_diciembre.append(tcField);
                record_diciembre.append(coField);
                record_diciembre.append(descField);
                record_diciembre.append(debe_dic_Field);
                record_diciembre.append(desde_dic_Field);
                record_diciembre.append(estado_deuda_Field);

//                record_cm_diciembre.append(cm_raz_soc_Field);
//                record_cm_diciembre.append(coField);
//                record_cm_diciembre.append(descField);
//                record_cm_diciembre.append(debe_dic_Field);
//                record_cm_diciembre.append(desde_dic_Field);
//                record_cm_diciembre.append(estado_deuda_Field);
//                record_cm_diciembre.append(tcField);
            }
            else {
                QSqlField desde_dic_Field(QStringLiteral("desde"), QVariant::Date);
                QSqlField debe_dic_Field(QStringLiteral("debe"), QVariant::Double);
                QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

                desde_dic_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),12,1));
                debe_dic_Field.setValue(0.00);
                estado_deuda_Field.setValue("No paga");

                record_diciembre.append(raz_soc_Field);
                record_diciembre.append(tcField);
                record_diciembre.append(coField);
                record_diciembre.append(descField);
                record_diciembre.append(debe_dic_Field);
                record_diciembre.append(desde_dic_Field);
                record_diciembre.append(estado_deuda_Field);

//                record_cm_diciembre.append(cm_raz_soc_Field);
//                record_cm_diciembre.append(coField);
//                record_cm_diciembre.append(descField);
//                record_cm_diciembre.append(debe_dic_Field);
//                record_cm_diciembre.append(desde_dic_Field);
//                record_cm_diciembre.append(estado_deuda_Field);
//                record_cm_diciembre.append(tcField);
            }
        }
        else {
            QSqlField desde_dic_Field(QStringLiteral("desde"), QVariant::Date);
            QSqlField debe_dic_Field(QStringLiteral("debe"), QVariant::Double);
            QSqlField estado_deuda_Field(QStringLiteral("estado_deuda"), QVariant::String);

            desde_dic_Field.setValue(QDate(ui->hasta_anio->currentText().toInt(),12,1));
            debe_dic_Field.setValue(0.00);
            estado_deuda_Field.setValue("Bonificado");

            record_diciembre.append(raz_soc_Field);
            record_diciembre.append(tcField);
            record_diciembre.append(coField);
            record_diciembre.append(descField);
            record_diciembre.append(debe_dic_Field);
            record_diciembre.append(desde_dic_Field);
            record_diciembre.append(estado_deuda_Field);

//            record_cm_diciembre.append(cm_raz_soc_Field);
//            record_cm_diciembre.append(coField);
//            record_cm_diciembre.append(descField);
//            record_cm_diciembre.append(debe_dic_Field);
//            record_cm_diciembre.append(desde_dic_Field);
//            record_cm_diciembre.append(estado_deuda_Field);
//            record_cm_diciembre.append(tcField);
        }

        if (!record_enero.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_enero))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 1!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_febrero.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_febrero))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 2!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_marzo.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_marzo))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 3!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_abril.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_abril))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 4!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_mayo.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_mayo))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 5!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_junio.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_junio))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 6!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_julio.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_julio))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 7!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_agosto.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_agosto))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 8!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_septiembre.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_septiembre))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 9!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_octubre.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_octubre))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 10!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_noviembre.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_noviembre))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 11!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        if (!record_diciembre.isNull(0)) {
            enjoylifedb.transaction();
            if (! (cc_model->insertRecord(-1, record_diciembre))) {
                QString error = cc_model->lastError().text();
                QMessageBox::critical(this,"Error 12!", tr("No se pudo insertar el registro, intentelo de nuevo."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }
            enjoylifedb.commit();
        }

        // ----------------------------------------------------------

//        if (!record_cm_enero.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_enero))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 13!", tr("NO se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_febrero.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_febrero))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 14!", tr("NO se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_marzo.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_marzo))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 15!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_abril.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_abril))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 16!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_mayo.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_mayo))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 17!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_junio.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_junio))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 18!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_julio.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_julio))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 19!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_agosto.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_agosto))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 20!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_septiembre.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_septiembre))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 21!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_octubre.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_octubre))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 22!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_noviembre.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_noviembre))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 23!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }

//        if (!record_cm_diciembre.isNull(0)) {
//            enjoylifedb.transaction();
//            if (! (cobro_mensual_model->insertRecord(-1, record_cm_diciembre))) {
//                QString error = cobro_mensual_model->lastError().text();
//                QMessageBox::critical(this,"Error 24!", tr("No se pudo insertar el registro, intentelo de nuevo."
//                                                        "\n %1").arg(error));
//                enjoylifedb.rollback();
//                return;
//            }
//            enjoylifedb.commit();
//        }
    }

    RazSoc = ui->client_list->currentText();
    RazonSocial = ui->client_list->currentText();

    ControlVencimientos();
    UpdateCCView();
    RefreshCCView();
    close();
}

void AltaCuentaCorriente::on_bonif_enero_clicked()
{
    if (ui->bonif_enero->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Enero?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_enero->setEnabled(false);
        ui->debe_enero->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_enero->setChecked(false);
        //            ui->debe_enero->setEnabled(true);
        //        }
    }
    else
        ui->debe_enero->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_febrero_clicked()
{
    if (ui->bonif_febrero->isChecked()) {
        ui->debe_febrero->setEnabled(false);
        ui->debe_febrero->setText("0.00");
    }
    else
        ui->debe_febrero->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_marzo_clicked()
{
    if (ui->bonif_marzo->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Marzo?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_marzo->setEnabled(false);
        ui->debe_marzo->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_marzo->setChecked(false);
        //            ui->debe_marzo->setEnabled(true);
        //        }
    }
    else
        ui->debe_marzo->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_abril_clicked()
{
    if (ui->bonif_abril->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Abril?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_abril->setEnabled(false);
        ui->debe_abril->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_abril->setChecked(false);
        //            ui->debe_abril->setEnabled(true);
        //        }
    }
    else
        ui->debe_abril->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_mayo_clicked()
{
    if (ui->bonif_mayo->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Mayo?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_mayo->setEnabled(false);
        ui->debe_mayo->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_mayo->setChecked(false);
        //            ui->debe_mayo->setEnabled(true);
        //        }
    }
    else
        ui->debe_mayo->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_junio_clicked()
{
    if (ui->bonif_junio->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Junio?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_junio->setEnabled(false);
        ui->debe_junio->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_junio->setChecked(false);
        //            ui->debe_junio->setEnabled(true);
        //        }
    }
    else
        ui->debe_junio->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_julio_clicked()
{
    if (ui->bonif_julio->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Julio?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_julio->setEnabled(false);
        ui->debe_julio->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_julio->setChecked(false);
        //            ui->debe_julio->setEnabled(true);
        //        }
    }
    else
        ui->debe_julio->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_agosto_clicked()
{
    if (ui->bonif_agosto->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Agosto?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_agosto->setEnabled(false);
        ui->debe_agosto->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_agosto->setChecked(false);
        //            ui->debe_agosto->setEnabled(true);
        //        }
    }
    else
        ui->debe_agosto->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_septiembre_clicked()
{
    if (ui->bonif_septiembre->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Septiembre?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_septiembre->setEnabled(false);
        ui->debe_septiembre->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_septiembre->setChecked(false);
        //            ui->debe_septiembre->setEnabled(true);
        //        }
    }
    else
        ui->debe_septiembre->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_octubre_clicked()
{
    if (ui->bonif_octubre->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Octubre?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_octubre->setEnabled(false);
        ui->debe_octubre->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_octubre->setChecked(false);
        //            ui->debe_octubre->setEnabled(true);
        //        }
    }
    else
        ui->debe_octubre->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_noviembre_clicked()
{
    if (ui->bonif_noviembre->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Noviembre?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_noviembre->setEnabled(false);
        ui->debe_noviembre->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_noviembre->setChecked(false);
        //            ui->debe_noviembre->setEnabled(true);
        //        }
    }
    else
        ui->debe_noviembre->setEnabled(true);
}

void AltaCuentaCorriente::on_bonif_diciembre_clicked()
{
    if (ui->bonif_diciembre->isChecked()) {
        //        QMessageBox::StandardButton button;
        //        button = QMessageBox::question(this,"Advertencia","¿Está seguro que quiere bonificar el mes de Diciembre?",
        //                                       QMessageBox::Yes | QMessageBox::No);

        //        if (button == QMessageBox::Yes) {
        ui->debe_diciembre->setEnabled(false);
        ui->debe_diciembre->setText("0.00");
        //        }
        //        else {
        //            ui->bonif_diciembre->setChecked(false);
        //            ui->debe_diciembre->setEnabled(true);
        //        }
    }
    else
        ui->debe_diciembre->setEnabled(true);
}

void AltaCuentaCorriente::on_tipo_cobro_currentIndexChanged(int index)
{
    if (index == 1) {
        paga_en_cuotas = true;
        ui->group_pago_cuota->setEnabled(true);
        ui->gruop_pago_mes->setEnabled(false);
        ui->hasta_anio->setEnabled(false);
    }
    else {
        paga_en_cuotas = false;
        ui->group_pago_cuota->setEnabled(false);
        ui->gruop_pago_mes->setEnabled(true);
        ui->hasta_anio->setEnabled(true);
    }
}

/**
 * @brief ControlVencimientos
 * Controla las fechas y actualiza los estados de las cuentas.
 */
void AltaCuentaCorriente::ControlVencimientos()
{
    int cantRows = 0;
    QDate date2;
    QString formatoMes = "MM";
    QString mes = date2.currentDate().toString(formatoMes);
    QString formatoAnio = "yyyy";
    QString anio = date2.currentDate().toString(formatoAnio);
    QString filtro;
    filtro = "date_part('month', desde) <= '";
    filtro.append(mes).append("'");
    filtro.append(" and date_part('year', desde) <= '");
    filtro.append(anio).append("'");
    filtro.append(" and estado_deuda = 'No informado'");

    cuenta_corriente_model->setTable("cuenta_corriente");
    cuenta_corriente_model->setFilter(filtro);

    cobro_mensual_model->setTable("cobro_mensual");
    cobro_mensual_model->setFilter(filtro);

    enjoylifedb.transaction();
    if (!cuenta_corriente_model->select()) {
        QMessageBox::critical(this,"Advertencia","No se pudo actualizar los estados de las Ctas. Ctes.");
        enjoylifedb.rollback();
        CleanCCList();
        return;
    }

    if (!cobro_mensual_model->select()) {
        QMessageBox::critical(this,"Advertencia","No se pudo actualizar los estados de los Cobros Mensuales.");
        enjoylifedb.rollback();
        return;
    }

    cantRows = cuenta_corriente_model->rowCount();
    if (cantRows > 0) {
        for (int i = 0; i < cantRows; ++i) {

            QSqlRecord record = cuenta_corriente_model->record(i);
            QSqlRecord cm_record = cobro_mensual_model->record(i);

            record.setValue("estado_deuda","Debe");
            cm_record.setValue("estado_deuda","Debe");

            cuenta_corriente_model->setRecord(i, record);
            cobro_mensual_model->setRecord(i,cm_record);

            enjoylifedb.transaction();
            if (!cuenta_corriente_model->submitAll()) {
                QString error = cuenta_corriente_model->lastError().text();
                QMessageBox::critical(this,"Error!", tr("No se pudo actualizar el estado de una Cta. Cte. Por favor controle las Ctas. Ctes."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                CleanCCList();
                return;
            }

            if (!cobro_mensual_model->submitAll()) {
                QString error = cobro_mensual_model->lastError().text();
                QMessageBox::critical(this,"Error!", tr("No se pudo actualizar el estado de un Cobro Mensual. Por favor controle los Cobros Mensuales."
                                                        "\n %1").arg(error));
                enjoylifedb.rollback();
                return;
            }

            enjoylifedb.commit();
        }
    }
}
